#include <stdio.h>
int main(void)
{
    FILE *infile, *outfile;
    int a[] = {11, 22, 33, 44, 56, 66, 77, 88, 99, 108}, b[10] = {0};
    // 修正：outfile用"w"写模式打开
    outfile = fopen("data.dat", "w");
    if (outfile == NULL)
    {
        perror("fopen outfile");
        return 1;
    }
    // 新增：打开infile用于后续读取
    infile = fopen("data.dat", "rb");
    if (infile == NULL)
    {
        perror("fopen infile");
        fclose(outfile);
        return 1;
    }
    for (int i = 0; i < 10; i++)
    {
        // 修正：fprintf参数顺序，先文件指针再格式和数据
        fprintf(outfile, "%d ", a[i]);
    }
    fseek(infile, 20, 0); // 移动文件指针
    fread(b, sizeof(int), 5, infile);
    for (int i = 0; i < 5; i++)
        printf("%d ", b[i]);
    printf("\n");
    fclose(infile);
    fclose(outfile);
    return 0;
}
/* 运行结果说明：
   1. 先向data.dat写入10个整数。
   2. fseek移动指针到20字节位置（假设int占4字节，移动5个整数位置）。
   3. 读取5个整数打印。
   错误原因：原代码outfile用"r"无法写入；fprintf参数顺序错；未打开infile导致后续操作错误。
*/